package org.shock.ss.sms.commons.excel.export;

import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFSheet;

public interface BaseExcelExport {
	/**
	 * 
	 * @param 传入sql语句
	 * @param filename文件名称
	 * @return 文件生成的路径
	 */

	public String setSqlGetExcel(String sql, String filename) throws Exception;

	/**
	 * @param 传入封装好的list语句
	 * @param filename文件名称
	 * @return
	 */
	public void writeExcel(List<List> list, String filename) throws Exception;

	/**
	 * @param 传入封装好的list语句
	 * @param filename文件名称
	 * @return 文件生成的路径
	 */

	public String setDataListGetExcel(List<List> list, String filename)
			throws Exception;

	/**
	 * 
	 * @param 传入sql语句
	 * @param filename文件名称
	 * @param sheetname
	 *            sheet的名称
	 * @return 文件生成的路径
	 */

	public String setSqlGetExcel(String[] sql, String filename,
			String[] sheetname) throws Exception;

	/**
	 * @param 传入封装好的list语句
	 * @param filename文件名称
	 * @param sheetname
	 *            sheet的名称
	 * @return 文件生成的路径
	 */
	public String setDataListGetExcel(List<List>[] list, String filename,
			String[] sheetname) throws Exception;

	/**
	 * @param sql语句
	 * @return 封装好的list语句
	 */
	public List<List> changeSqlToList(String sql) throws Exception;

	/**
	 * @param sheetname
	 *            sheet名称
	 * @return 返回一个HSSFSheet对象
	 */
	public HSSFSheet creationSheet() throws Exception;

	/**
	 * 设置一个sheet的表头
	 * 
	 * @param sheet
	 *            sheet对象
	 * @return 返回一个HSSFSheet对象
	 */
	public HSSFSheet setHead(List<List> list) throws Exception;

	/**
	 * @param 设置一个sheet的表体
	 *            sheet对象
	 * @return 返回一个HSSFSheet对象
	 */
	public HSSFSheet setBody(List<List> list) throws Exception;

	/**
	 * @param 设置一个sheet的尾
	 *            sheet对象
	 * @return 返回一个HSSFSheet对象
	 */
	public HSSFSheet setEnd(List<List> list) throws Exception;

	/**
	 * 
	 * 
	 * @return 返回一个excel路径
	 */
	public void getExcel() throws Exception;

	/**
	 * 
	 * 
	 * @return 返回一个excel路径
	 */
	public String getExcelPath() throws Exception;

	/**
	 * 
	 * 
	 * @return 得到excel下载后的名称
	 */
	public String getExcelName() throws Exception;

	/** 添加导出模板的单元格限制条件 */
	public void addValidationDataList() throws Exception;
}
